﻿
namespace EasyComm.SDK.Internal
{
    internal class CacheRepository
    {
        //internal static Uri AdminUrl
        //{
        //    get
        //    {
        //        Uri item = (Uri)Cache.Current.GetItem("AdminUrl");
        //        if (item == null)
        //        {
        //            SetServiceUrl();
        //            item = (Uri)Cache.Current.GetItem("AdminUrl");
        //        }
        //        return item;
        //    }
        //}

        //internal static Uri ProxyUrl
        //{
        //    get
        //    {
        //        Uri item = (Uri)Cache.Current.GetItem("ProxyUrl");
        //        if (item == null)
        //        {
        //            SetServiceUrl();
        //            item = (Uri)Cache.Current.GetItem("ProxyUrl");
        //        }
        //        return item;
        //    }
        //}

        //internal static Uri RouterUrl
        //{
        //    get
        //    {
        //        Uri item = (Uri)Cache.Current.GetItem("RouterUrl");
        //        if (item == null)
        //        {
        //            SetServiceUrl();
        //            item = (Uri)Cache.Current.GetItem("RouterUrl");
        //        }
        //        return item;
        //    }
        //}

        //private static object _lock1 = new object();
        //private static void SetServiceUrl()
        //{
        //    lock (_lock1)
        //    {
        //        //Cache.Current.RemoveItem("ProxyUrl");
        //        //Cache.Current.RemoveItem("RouterUrl");
        //        //Cache.Current.RemoveItem("ModuleUrl");
        //        Cache.Current.RemoveItem("AdminUrl");
        //        IDictionary<Uri, ServiceType> serviceList = NLB.GetServices();
        //        foreach (KeyValuePair<Uri, ServiceType> kv in serviceList)
        //        {
        //            switch (kv.Value)
        //            {
        //                case ServiceType.NA:
        //                    break;
        //                case ServiceType.Proxy:
        //                    Cache.Current.AddItem("ProxyUrl", kv.Key);
        //                    break;
        //                case ServiceType.Router:
        //                    Cache.Current.AddItem("RouterUrl", kv.Key);
        //                    break;
        //                case ServiceType.Module:
        //                    Cache.Current.AddItem("ModuleUrl", kv.Key);
        //                    break;
        //                case ServiceType.Admin:
        //                    Cache.Current.AddItem("AdminUrl", kv.Key);
        //                    break;
        //                default:
        //                    break;
        //            }
        //        }
        //    }
        //}
    }
}
